package org.dromara.Nyt7InsuranceProduct.domain.bo;

import org.dromara.Nyt7InsuranceProduct.domain.Nyt7InsuranceProduct1;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

/**
 * 保险产品业务对象 nyt_7_insurance_product
 *
 * @author yt
 * @date 2025-01-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = Nyt7InsuranceProduct1.class, reverseConvertGenerate = false)
public class Nyt7InsuranceProductBo extends BaseEntity {
    /**
     * 产品id
     */
    private Long id;

    /**
     * 保险公司名称
     */
    @NotBlank(message = "保险公司名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String companyName;

    /**
     * 保险类型
     */
    @NotBlank(message = "保险类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String categoryName;

    /**
     * 产品名称
     */
    @NotBlank(message = "产品名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String productName;

    /**
     * 产品简介
     */
    @NotBlank(message = "产品简介不能为空", groups = { AddGroup.class, EditGroup.class })
    private String productIntroduction;

    /**
     * 保险期限
     */
    @NotBlank(message = "保险期限不能为空", groups = { AddGroup.class, EditGroup.class })
    private String insuranceDuration;

    /**
     * 单位保费
     */
    @NotNull(message = "单位保费不能为空", groups = { AddGroup.class, EditGroup.class })
    private String unitPremium;

    /**
     * 投保单位
     */
    @NotBlank(message = "投保单位不能为空", groups = { AddGroup.class, EditGroup.class })
    private String insureUnit;

    /**
     * 单位保额
     */
    @NotNull(message = "单位保额不能为空", groups = { AddGroup.class, EditGroup.class })
    private String unitAmount;

    /**
     * 中央财政补贴比例
     */
    @NotNull(message = "中央财政补贴比例不能为空", groups = { AddGroup.class, EditGroup.class })
    private Double ratioCentralFiscalSubsidy;

    /**
     * 省级财政补贴比例
     */
    @NotNull(message = "省级财政补贴比例不能为空", groups = { AddGroup.class, EditGroup.class })
    private Double ratioProvincialFiscalSubsidy;

    /**
     * 地市财政补贴比例
     */
    @NotNull(message = "地市财政补贴比例不能为空", groups = { AddGroup.class, EditGroup.class })
    private Double ratioMunicipalFiscalSubsidy;

    /**
     * 区县财政补贴比例
     */
    @NotNull(message = "区县财政补贴比例不能为空", groups = { AddGroup.class, EditGroup.class })
    private Double ratioDistrictAndCountyFiscalSubsidy;

    /**
     * 其他财政补贴比例
     */
    @NotNull(message = "其他财政补贴比例不能为空", groups = { AddGroup.class, EditGroup.class })
    private Double ratioOtherFiscalSubsidies;


}
